import moment from 'moment';

/**
 * 文件下载
 * @param { formData } data 文件流
 * @param { String } fileName	指定下载的文件名称，默认值为：时间戳
 */
export function downloadFile(data, fileName = moment().format('YYYYMMDDhhmmssSS')) {
  if (!data) return;

  const options = {
    type: 'application/vnd.openxmlformats-officedocument.spreadsheetml.sheet;charset=utf-8',
  };

  if (window.navigator.msSaveBlob) {
    // IE以及IE内核的浏览器
    try {
      window.navigator.msSaveBlob(data, fileName);
    } catch (e) {
      console.log(e);
    }
  } else {
    // 非 IE
    let url = window.URL.createObjectURL(new Blob([data], options));
    let link = document.createElement('a');
    link.style.display = 'none';
    link.href = url;
    link.setAttribute('download', fileName); // 文件名
    document.body.appendChild(link);
    link.click();
    document.body.removeChild(link); // 下载完成移除元素
    window.URL.revokeObjectURL(url); // 释放掉blob对象
  }
}

/**
 * 格式化文件大小
 * @param fileSize  文件大小，字节
 * @returns {string}
 */
export function getFileSizeStr(fileSize) {
  if (!fileSize) return '0 KB';
  const KB = fileSize / 1024;
  if (KB < 1024) return `${KB} KB`;
  const MB = KB / 1024;
  if (MB < 1024) return `${MB} MB`;
  const GB = MB / 1024;
  return `${GB} GB`;
}